home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / communication / bbs / termv4.6 / extras / source / term-source.lha / ModemPanel.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-18  |  13.6 KB  |  574 lines

  1. /*
  2. **    ModemPanel.c
  3. **
  4. **    Editing panel for modem configuration
  5. **
  6. **    Copyright © 1990-1996 by Olaf `Olsen' Barthel
  7. **        All Rights Reserved
  8. */
  9.  
  10. #ifndef _GLOBAL_H
  11. #include "Global.h"
  12. #endif
  13.  
  14. enum    {    GAD_LIMIT_MACRO=1000,GAD_DIAL_PREFIX,GAD_DIAL_SUFFIX,
  15.         GAD_DIAL_MODE,GAD_USE,GAD_CANCEL,
  16.         GAD_PAGER,GAD_PAGEGROUP,GAD_INTER_DIAL_DELAY,
  17.         GAD_PBX_PREFIX,GAD_PBX
  18.     };
  19.  
  20. STATIC UBYTE * __saveds __stdargs
  21. ShowDialRetries(struct Gadget *SomeGadget,LONG Level)
  22. {
  23.     if(Level < 0)
  24.         return(LocaleString(MSG_DIAL_RETRIES_UNLIMITED_TXT));
  25.     else
  26.     {
  27.         STATIC UBYTE Buffer[10];
  28.  
  29.         SPrintf(Buffer,"%ld",Level);
  30.  
  31.         return(Buffer);
  32.     }
  33. }
  34.  
  35. STATIC UBYTE * __saveds __stdargs
  36. ShowHours(struct Gadget *SomeGadget,LONG Level)
  37. {
  38.     STATIC UBYTE Buffer[15];
  39.  
  40.     SPrintf(Buffer,LocaleString(MSG_GLOBAL_SHOW_HOURS_TXT),Level / 60,Level % 60);
  41.  
  42.     return(Buffer);
  43. }
  44.  
  45. STATIC UBYTE * __saveds __stdargs
  46. ModemShowSeconds(struct Gadget *SomeGadget,LONG Level)
  47. {
  48.     STATIC UBYTE Buffer[15];
  49.  
  50.     SPrintf(Buffer,LocaleString(MSG_GLOBAL_SHOW_MINUTES_TXT),Level / 60,Level % 60);
  51.  
  52.     return(Buffer);
  53. }
  54.  
  55. BOOL
  56. ModemPanel(struct Window *Parent,struct Configuration *LocalConfig)
  57. {
  58.     STATIC LONG PageTitleID[7] =
  59.     {
  60.         MSG_V36_0110,
  61.         MSG_V36_0111,
  62.         MSG_DIALCOMMANDS_TXT,
  63.         MSG_V36_0112,
  64.         MSG_V36_0116,
  65.         MSG_V36_0118,
  66.         -1
  67.     };
  68.  
  69.     STATIC BYTE InitialPage = 0;
  70.  
  71.     struct LayoutHandle    *Handle;
  72.     BOOL             UseIt = FALSE;
  73.  
  74.     SaveConfig(LocalConfig,PrivateConfig);
  75.  
  76.     if(Handle = LT_CreateHandleTags(Parent -> WScreen,
  77.         LH_LocaleHook,    &LocaleHook,
  78.         LH_ExitFlush,    FALSE,
  79.     TAG_DONE))
  80.     {
  81.         struct Window *PanelWindow;
  82.  
  83.         LT_New(Handle,
  84.             LA_Type,    VERTICAL_KIND,
  85.         TAG_DONE);
  86.         {
  87.             LT_New(Handle,
  88.                 LA_Type,VERTICAL_KIND,
  89.             TAG_DONE);
  90.             {
  91.                 LT_New(Handle,
  92.                     LA_Type,    TAB_KIND,
  93.                     LA_ID,        GAD_PAGER,
  94.                     LA_LabelID,    MSG_XFER_PAGE_TXT,
  95.                     LACY_LabelTable,PageTitleID,
  96.                     LACY_AutoPageID,GAD_PAGEGROUP,
  97.                     LACY_TabKey,    TRUE,
  98.                     LA_BYTE,    &InitialPage,
  99.                     LATB_FullWidth,    TRUE,
  100.                 TAG_DONE);
  101.  
  102.                 LT_EndGroup(Handle);
  103.             }
  104.  
  105.             LT_New(Handle,
  106.                 LA_Type,    VERTICAL_KIND,
  107.                 LA_ID,        GAD_PAGEGROUP,
  108.                 LAGR_ActivePage,InitialPage,
  109.             TAG_DONE);
  110.             {
  111.                 LT_New(Handle,
  112.                     LA_Type,    VERTICAL_KIND,
  113.                 TAG_DONE);
  114.                 {
  115.                     LT_New(Handle,
  116.                         LA_Type,    STRING_KIND,
  117.                         LA_LabelID,    MSG_MODEMPANEL_MODEM_INIT_STRING_GAD,
  118.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> ModemInit,
  119.                         LA_Chars,    20,
  120.                         GTST_MaxChars,    79,
  121.                     TAG_DONE);
  122.  
  123.                     LT_New(Handle,
  124.                         LA_Type,    STRING_KIND,
  125.                         LA_LabelID,    MSG_MODEMPANEL_MODEM_EXIT_STRING_GAD,
  126.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> ModemExit,
  127.                         GTST_MaxChars,    79,
  128.                     TAG_DONE);
  129.  
  130.                     LT_New(Handle,
  131.                         LA_Type,    STRING_KIND,
  132.                         LA_LabelID,    MSG_MODEMPANEL_MODEM_HANGUP_STRING_GAD,
  133.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> ModemHangup,
  134.                         GTST_MaxChars,    79,
  135.                     TAG_DONE);
  136.  
  137.                     if(LocalConfig == Config)
  138.                     {
  139.                         LT_New(Handle,
  140.                             LA_Type,    CHECKBOX_KIND,
  141.                             LA_LabelID,    MSG_DO_NOT_SEND_MODEM_COMMANDS_TXT,
  142.                             LA_BYTE,    &PrivateConfig -> ModemConfig -> DoNotSendMainModemCommands,
  143.                             LA_ExtraSpace,    TRUE,
  144.                         TAG_DONE);
  145.                     }
  146.  
  147.                     LT_New(Handle,
  148.                         LA_Type,    XBAR_KIND,
  149.                     TAG_DONE);
  150.  
  151.                     LT_New(Handle,
  152.                         LA_Type,        INTEGER_KIND,
  153.                         LA_LabelID,        MSG_COMMAND_SEND_DELAY_TXT,
  154.                         LA_LONG,        &PrivateConfig -> ModemConfig -> CharSendDelay,
  155.                         LAIN_Min,        0,
  156.                         LAIN_UseIncrementers,    TRUE,
  157.                     TAG_DONE);
  158.  
  159.                     LT_EndGroup(Handle);
  160.                 }
  161.  
  162.                 LT_New(Handle,
  163.                     LA_Type,    VERTICAL_KIND,
  164.                 TAG_DONE);
  165.                 {
  166.                     LT_New(Handle,
  167.                         LA_Type,    STRING_KIND,
  168.                         LA_LabelID,    MSG_MODEMPANEL_NO_CARRIER_STRING_GAD,
  169.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> NoCarrier,
  170.                         LA_Chars,    20,
  171.                         GTST_MaxChars,    15,
  172.                     TAG_DONE);
  173.  
  174.                     LT_New(Handle,
  175.                         LA_Type,    STRING_KIND,
  176.                         LA_LabelID,    MSG_MODEMPANEL_NO_DIALTONE_STRING_GAD,
  177.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> NoDialTone,
  178.                         GTST_MaxChars,    15,
  179.                     TAG_DONE);
  180.  
  181.                     LT_New(Handle,
  182.                         LA_Type,    STRING_KIND,
  183.                         LA_LabelID,    MSG_MODEMPANEL_CONNECT_STRING_GAD,
  184.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> Connect,
  185.                         GTST_MaxChars,    15,
  186.                     TAG_DONE);
  187.  
  188.                     LT_New(Handle,
  189.                         LA_Type,    STRING_KIND,
  190.                         LA_LabelID,    MSG_MODEMPANEL_VOICE_STRING_GAD,
  191.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> Voice,
  192.                         GTST_MaxChars,    15,
  193.                     TAG_DONE);
  194.  
  195.                     LT_New(Handle,
  196.                         LA_Type,    STRING_KIND,
  197.                         LA_LabelID,    MSG_MODEMPANEL_RING_STRING_GAD,
  198.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> Ring,
  199.                         GTST_MaxChars,    15,
  200.                     TAG_DONE);
  201.  
  202.                     LT_New(Handle,
  203.                         LA_Type,    STRING_KIND,
  204.                         LA_LabelID,    MSG_MODEMPANEL_BUSY_STRING_GAD,
  205.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> Busy,
  206.                         GTST_MaxChars,    15,
  207.                     TAG_DONE);
  208.  
  209.                     LT_New(Handle,
  210.                         LA_Type,    STRING_KIND,
  211.                         LA_LabelID,    MSG_MODEMPANEL_OK_STRING_GAD,
  212.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> Ok,
  213.                         GTST_MaxChars,    15,
  214.                     TAG_DONE);
  215.  
  216.                     LT_New(Handle,
  217.                         LA_Type,    STRING_KIND,
  218.                         LA_LabelID,    MSG_MODEMPANEL_ERROR_STRING_GAD,
  219.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> Error,
  220.                         GTST_MaxChars,    15,
  221.                     TAG_DONE);
  222.  
  223.                     LT_EndGroup(Handle);
  224.                 }
  225.  
  226.                 LT_New(Handle,
  227.                     LA_Type,    VERTICAL_KIND,
  228.                 TAG_DONE);
  229.                 {
  230.                     STATIC LONG DialLabels[] =
  231.                     {
  232.                         MSG_DIALMODE1_TXT,
  233.                         MSG_DIALMODE2_TXT,
  234.                         MSG_DIALMODE3_TXT,
  235.                         MSG_DIALMODE4_TXT,
  236.                         -1
  237.                     };
  238.  
  239.                     BOOL NotFound = TRUE;
  240.                     LONG i;
  241.  
  242.                     for(i = 0 ; NotFound && i < strlen(PrivateConfig -> ModemConfig -> DialPrefix) - 1 ; i++)
  243.                     {
  244.                         if(PrivateConfig -> ModemConfig -> DialPrefix[i] == '\\' && ToUpper(PrivateConfig -> ModemConfig -> DialPrefix[i + 1]) == 'W')
  245.                             NotFound = FALSE;
  246.                     }
  247.  
  248.                     for(i = 0 ; NotFound && i < strlen(PrivateConfig -> ModemConfig -> DialSuffix) - 1 ; i++)
  249.                     {
  250.                         if(PrivateConfig -> ModemConfig -> DialSuffix[i] == '\\' && ToUpper(PrivateConfig -> ModemConfig -> DialSuffix[i + 1]) == 'W')
  251.                             NotFound = FALSE;
  252.                     }
  253.  
  254.                     LT_New(Handle,
  255.                         LA_Type,    STRING_KIND,
  256.                         LA_LabelID,    MSG_MODEMPANEL_DIAL_PREFIX_GAD,
  257.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> DialPrefix,
  258.                         LA_Chars,    20,
  259.                         LA_ID,        GAD_DIAL_PREFIX,
  260.                         GTST_MaxChars,    79,
  261.                     TAG_DONE);
  262.  
  263.                     LT_New(Handle,
  264.                         LA_Type,    STRING_KIND,
  265.                         LA_LabelID,    MSG_MODEMPANEL_DIAL_SUFFIX_GAD,
  266.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> DialSuffix,
  267.                         LA_ID,        GAD_DIAL_SUFFIX,
  268.                         GTST_MaxChars,    79,
  269.                     TAG_DONE);
  270.  
  271.                     LT_New(Handle,
  272.                         LA_Type,    CYCLE_KIND,
  273.                         LA_LabelID,    MSG_DIALMODE2_GAD,
  274.                         LA_BYTE,    &PrivateConfig -> ModemConfig -> DialMode,
  275.                         LA_ID,        GAD_DIAL_MODE,
  276.                         LACY_LabelTable,DialLabels,
  277.                         GA_Disabled,    NotFound,
  278.                     TAG_DONE);
  279.  
  280.                     LT_New(Handle,
  281.                         LA_Type,    STRING_KIND,
  282.                         LA_LabelID,    MSG_PBX_DIAL_PREFIX_TXT,
  283.                         LA_STRPTR,    PrivateConfig -> ModemConfig -> PBX_Prefix,
  284.                         LA_ID,        GAD_PBX_PREFIX,
  285.                         GTST_MaxChars,    79,
  286.                         LA_ExtraSpace,    TRUE,
  287.                     TAG_DONE);
  288.  
  289.                     LT_New(Handle,
  290.                         LA_Type,    CHECKBOX_KIND,
  291.                         LA_LabelID,    MSG_PBX_DIAL_MODE_TXT,
  292.                         LA_BYTE,    &PrivateConfig -> ModemConfig -> PBX_Mode,
  293.                     TAG_DONE);
  294.  
  295.                     LT_EndGroup(Handle);
  296.                 }
  297.  
  298.                 LT_New(Handle,
  299.                     LA_Type,    VERTICAL_KIND,
  300.                 TAG_DONE);
  301.                 {
  302.                     LT_New(Handle,
  303.                         LA_Type,        SliderType,
  304.                         LA_LabelID,        MSG_MODEMPANEL_REDIAL_DELAY_GAD,
  305.                         LA_LONG,        &PrivateConfig -> ModemConfig -> RedialDelay,
  306.                         GTSL_Min,        0,
  307.                         GTSL_Max,        60 * 60,
  308.                         GTSL_DispFunc,        ModemShowSeconds,
  309.                         GTSL_LevelFormat,    "%s",
  310.                     TAG_DONE);
  311.  
  312.                     LT_New(Handle,
  313.                         LA_Type,        SliderType,
  314.                         LA_LabelID,        MSG_MODEMPANEL_DIAL_RETRIES_GAD,
  315.                         LA_LONG,        &PrivateConfig -> ModemConfig -> DialRetries,
  316.                         GTSL_DispFunc,        ShowDialRetries,
  317.                         GTSL_Min,        -1,
  318.                         GTSL_Max,        1000,
  319.                         GTSL_LevelFormat,    "%s",
  320.                     TAG_DONE);
  321.  
  322.                     LT_New(Handle,
  323.                         LA_Type,        SliderType,
  324.                         LA_LabelID,        MSG_MODEMPANEL_DIAL_TIMEOUT_GAD,
  325.                         LA_LONG,        &PrivateConfig -> ModemConfig -> DialTimeout,
  326.                         GTSL_Min,        0,
  327.                         GTSL_Max,        1800,
  328.                         GTSL_DispFunc,        ModemShowSeconds,
  329.                         GTSL_LevelFormat,    "%s",
  330.                     TAG_DONE);
  331.  
  332.                     LT_New(Handle,
  333.                         LA_Type,        SliderType,
  334.                         LA_LabelID,        MSG_INTER_DIAL_DELAY_TXT,
  335.                         LA_LONG,        &PrivateConfig -> ModemConfig -> InterDialDelay,
  336.                         GTSL_Min,        0,
  337.                         GTSL_Max,        1800,
  338.                         GTSL_DispFunc,        ModemShowSeconds,
  339.                         GTSL_LevelFormat,    "%s",
  340.                     TAG_DONE);
  341.  
  342.                     LT_New(Handle,
  343.                         LA_Type,        CHECKBOX_KIND,
  344.                         LA_LabelID,        MSG_VERBOSE_DIALING_TXT,
  345.                         LA_BYTE,        &PrivateConfig -> ModemConfig -> VerboseDialing,
  346.                     TAG_DONE);
  347.  
  348.                     LT_New(Handle,
  349.                         LA_Type,        CHECKBOX_KIND,
  350.                         LA_LabelID,        MSG_MODEMPANEL_NOCARRIER_IS_BUSY_GAD,
  351.                         LA_BYTE,        &PrivateConfig -> ModemConfig -> NoCarrierIsBusy,
  352.                     TAG_DONE);
  353.  
  354.                     LT_New(Handle,
  355.                         LA_Type,        XBAR_KIND,
  356.                     TAG_DONE);
  357.  
  358.                     LT_New(Handle,
  359.                         LA_Type,        CHECKBOX_KIND,
  360.                         LA_LabelID,        MSG_MODEMPANEL_CONNECT_AUTO_BAUD_GAD,
  361.                         LA_BYTE,        &PrivateConfig -> ModemConfig -> ConnectAutoBaud,
  362.                     TAG_DONE);
  363.  
  364.                     LT_New(Handle,
  365.                         LA_Type,        CHECKBOX_KIND,
  366.                         LA_LabelID,        MSG_MODEMPANEL_ABORT_HANGS_UP_TXT,
  367.                         LA_BYTE,        &PrivateConfig -> ModemConfig -> AbortHangsUp,
  368.                     TAG_DONE);
  369.  
  370.                     LT_New(Handle,
  371.                         LA_Type,        SliderType,
  372.                         LA_LabelID,        MSG_MODEMPANEL_TIME_TO_CONNECT_GAD,
  373.                         LA_LONG,        &PrivateConfig -> ModemConfig -> TimeToConnect,
  374.                         LA_Chars,        8,
  375.                         GTSL_Min,        0,
  376.                         GTSL_Max,        60 * 60,
  377.                         GTSL_DispFunc,        ModemShowSeconds,
  378.                         GTSL_LevelFormat,    "%s",
  379.                     TAG_DONE);
  380.  
  381.                     LT_EndGroup(Handle);
  382.                 }
  383.  
  384.                 LT_New(Handle,
  385.                     LA_Type,    VERTICAL_KIND,
  386.                 TAG_DONE);
  387.                 {
  388.                     LT_New(Handle,
  389.                         LA_Type,        CHECKBOX_KIND,
  390.                         LA_LabelID,        MSG_MODEMPANEL_DROP_DTR_ON_HANGUP_GAD,
  391.                         LA_BYTE,        &PrivateConfig -> ModemConfig -> DropDTR,
  392.                     TAG_DONE);
  393.  
  394.                     LT_New(Handle,
  395.                         LA_Type,        CHECKBOX_KIND,
  396.                         LA_LabelID,        MSG_MODEMPANEL_REDIAL_AFTER_HANGUP_GAD,
  397.                         LA_BYTE,        &PrivateConfig -> ModemConfig -> RedialAfterHangup,
  398.                     TAG_DONE);
  399.  
  400.                     LT_EndGroup(Handle);
  401.                 }
  402.  
  403.                 LT_New(Handle,
  404.                     LA_Type,    VERTICAL_KIND,
  405.                 TAG_DONE);
  406.                 {
  407.                     LT_New(Handle,
  408.                         LA_Type,        SliderType,
  409.                         LA_LabelID,        MSG_MODEMPANEL_CONNECTION_LIMIT_GAD,
  410.                         LA_WORD,        &PrivateConfig -> ModemConfig -> ConnectLimit,
  411.                         GTSL_Min,        0,
  412.                         GTSL_Max,        1440,
  413.                         GTSL_DispFunc,        ShowHours,
  414.                         GTSL_LevelFormat,    "%s",
  415.                     TAG_DONE);
  416.  
  417.                     LT_New(Handle,
  418.                         LA_Type,        STRING_KIND,
  419.                         LA_LabelID,        MSG_MODEMPANEL_LIMIT_MACRO_GAD,
  420.                         LA_STRPTR,        PrivateConfig -> ModemConfig -> ConnectLimitMacro,
  421.                         LA_Chars,        20,
  422.                         LA_ID,            GAD_LIMIT_MACRO,
  423.                         GTST_MaxChars,        MAX_FILENAME_LENGTH - 1,
  424.                     TAG_DONE);
  425.  
  426.                     LT_EndGroup(Handle);
  427.                 }
  428.  
  429.                 LT_EndGroup(Handle);
  430.             }
  431.  
  432.             LT_New(Handle,
  433.                 LA_Type,    VERTICAL_KIND,
  434.             TAG_DONE);
  435.             {
  436.                 LT_New(Handle,LA_Type,XBAR_KIND,LAXB_FullSize,TRUE,TAG_DONE);
  437.  
  438.                 LT_EndGroup(Handle);
  439.             }
  440.  
  441.             LT_New(Handle,LA_Type,HORIZONTAL_KIND,
  442.                 LAGR_SameSize,    TRUE,
  443.                 LAGR_Spread,    TRUE,
  444.             TAG_DONE);
  445.             {
  446.                 LT_New(Handle,
  447.                     LA_Type,    BUTTON_KIND,
  448.                     LA_LabelID,    MSG_GLOBAL_USE_GAD,
  449.                     LA_ID,        GAD_USE,
  450.                     LABT_ReturnKey,    TRUE,
  451.                     LABT_ExtraFat,    TRUE,
  452.                 TAG_DONE);
  453.  
  454.                 LT_New(Handle,
  455.                     LA_Type,    BUTTON_KIND,
  456.                     LA_LabelID,    MSG_GLOBAL_CANCEL_GAD,
  457.                     LA_ID,        GAD_CANCEL,
  458.                     LABT_EscKey,    TRUE,
  459.                     LABT_ExtraFat,    TRUE,
  460.                 TAG_DONE);
  461.  
  462.                 LT_EndGroup(Handle);
  463.             }
  464.  
  465.             LT_EndGroup(Handle);
  466.         }
  467.  
  468.         if(PanelWindow = LT_Build(Handle,
  469.             LAWN_TitleID,        MSG_MODEMPANEL_MODEM_PREFERENCES_TXT,
  470.             LAWN_IDCMP,        IDCMP_CLOSEWINDOW,
  471.             LAWN_HelpHook,        &GuideHook,
  472.             LAWN_Parent,        Parent,
  473.             WA_DepthGadget,        TRUE,
  474.             WA_CloseGadget,        TRUE,
  475.             WA_DragBar,        TRUE,
  476.             WA_RMBTrap,        TRUE,
  477.             WA_Activate,        TRUE,
  478.             WA_SimpleRefresh,    TRUE,
  479.         TAG_DONE))
  480.         {
  481.             struct IntuiMessage    *Message;
  482.             BOOL             Done = FALSE;
  483.             ULONG             MsgClass;
  484.             struct Gadget        *MsgGadget;
  485.             LONG             i;
  486.             BOOL             NotFound;
  487.  
  488.             GuideContext(CONTEXT_MODEM);
  489.  
  490.             PushWindow(PanelWindow);
  491.  
  492.             LT_ShowWindow(Handle,TRUE);
  493.  
  494.             do
  495.             {
  496.                 if(Wait(PORTMASK(PanelWindow -> UserPort) | SIG_BREAK) & SIG_BREAK)
  497.                     break;
  498.  
  499.                 while(Message = (struct IntuiMessage *)LT_GetIMsg(Handle))
  500.                 {
  501.                     MsgClass    = Message -> Class;
  502.                     MsgGadget    = (struct Gadget *)Message -> IAddress;
  503.  
  504.                     LT_ReplyIMsg(Message);
  505.  
  506.                     if(MsgClass == IDCMP_CLOSEWINDOW)
  507.                         Done = TRUE;
  508.  
  509.                     if(MsgClass == IDCMP_GADGETUP)
  510.                     {
  511.                         switch(MsgGadget -> GadgetID)
  512.                         {
  513.                             case GAD_DIAL_PREFIX:
  514.                             case GAD_DIAL_SUFFIX:
  515.                             case GAD_DIAL_MODE:
  516.  
  517.                                 for(i = 0, NotFound = TRUE ; NotFound && i < strlen(PrivateConfig -> ModemConfig -> DialPrefix) - 1 ; i++)
  518.                                 {
  519.                                     if(PrivateConfig -> ModemConfig -> DialPrefix[i] == '\\' && ToUpper(PrivateConfig -> ModemConfig -> DialPrefix[i + 1]) == 'W')
  520.                                         NotFound = FALSE;
  521.                                 }
  522.  
  523.                                 for(i = 0 ; NotFound && i < strlen(PrivateConfig -> ModemConfig -> DialSuffix) - 1 ; i++)
  524.                                 {
  525.                                     if(PrivateConfig -> ModemConfig -> DialSuffix[i] == '\\' && ToUpper(PrivateConfig -> ModemConfig -> DialSuffix[i + 1]) == 'W')
  526.                                         NotFound = FALSE;
  527.                                 }
  528.  
  529.                                 LT_SetAttributes(Handle,GAD_DIAL_MODE,
  530.                                     GA_Disabled,NotFound,
  531.                                 TAG_DONE);
  532.  
  533.                                 break;
  534.  
  535.                             case GAD_USE:
  536.  
  537.                                 LT_UpdateStrings(Handle);
  538.  
  539.                                 UseIt = Done = TRUE;
  540.                                 break;
  541.  
  542.                             case GAD_CANCEL:
  543.  
  544.                                 Done = TRUE;
  545.                                 break;
  546.                         }
  547.                     }
  548.                 }
  549.             }
  550.             while(!Done);
  551.  
  552.             PopWindow();
  553.         }
  554.  
  555.         LT_DeleteHandle(Handle);
  556.     }
  557.  
  558.     if(UseIt)
  559.     {
  560.         if(Config -> MiscConfig -> ProtectiveMode && PrivateConfig -> SerialConfig -> BaudRate >= 4800 && PrivateConfig -> ModemConfig -> ConnectAutoBaud)
  561.         {
  562.             if(ShowRequest(Window,LocaleString(MSG_AUTOBAUD_TXT),LocaleString(MSG_GLOBAL_YES_NO_TXT)))
  563.                 PrivateConfig -> ModemConfig -> ConnectAutoBaud = FALSE;
  564.         }
  565.     }
  566.  
  567.     if(UseIt)
  568.         SwapConfig(LocalConfig,PrivateConfig);
  569.     else
  570.         SaveConfig(LocalConfig,PrivateConfig);
  571.  
  572.     return(UseIt);
  573. }
  574.